﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ModelQuality.Metrics.Model;

namespace ModelQuality.Metrics.Services
{
    public interface IRepositoryServices
    {
        #region Packages mgt

        PackageVO GetPackage(String guid);

        IList<PackageVO> GetPackages(PackageVO package);

        bool IsElementInPackage(ElementVO element, PackageVO package);

        bool IsDiagramInPackage(DiagramVO diagram, PackageVO package);

        #endregion

        #region Elements mgt

        IList<ElementVO> GetElements(PackageVO package);

        IList<ElementVO> GetElements(ElementVO element);

        IList<ElementVO> GetScenarios(ElementVO element);

        #endregion

        #region Operations mgt

        IList<OperationVO> GetOperations(ElementVO element);

        #endregion

        #region Diagrams mgt

        IList<DiagramVO> GetDiagrams(PackageVO package);

        IList<DiagramVO> GetDiagrams(ElementVO element);

        IList<ElementVO> GetElementsFromDiagram(DiagramVO diagram);

        #endregion

        #region Associations mgt

        IList<AssociationVO> GetAssociations(ElementVO element);

        #endregion
    }
}
